정보처리기사 공부 후 정리 자료입니다. 정확하지 않을 수 있으니 꼭 책을 참고해서 공부하세요
2020 정보 처리 기사 프로그래밍 언어 활용 요약 입니다. 정처기 공부를 할 때 활용하세요.
1. 데이터 타입(Data Type)
- 변수(Variable)에 저장될 데이터의 형식을 나타내는 것으로, 변수에 값을 저장하기 전에 문자형, 정수형, 실수형 등 어 떤 형식의 값을 저장할지 데이터 타입을 지정하여 변수를 선언해야 함
- 데이터 타입의 유형
불린 타입 (Boolean Type): 조건의 참(True), 거짓(False) 여부를 판단. 기본값은 거짓(False) (true, false)
문자 타입 (Character Type) : 한 문자를 저장할 때, 작은따옴표(’ ’) 안에 표시 (‘A’, ‘a’, ‘1’, ’*‘)
문자열 타입(Character String Type) : 문자열을 저장할 때, 큰따옴표(” ”) 안에 표시 (“Hello!”, “1+2=3”)
정수 타입 (Integer Type) : 정수, 즉 소수점이 없는 숫자를 저장 (1, -1, 10, -100)
부동 소수점 타입 (Floating Point Type) : 소수점 이하가 있는 실수를 저장할 때 (0.123×102, -1.6×23)
배열 타입 (Array Type) : 같은 타입의 데이터 집합을 만들어 저장 , 데이터는 중괄호({ }) 안에 콤마(,)로 구분하여 값들을 나열
({1, 2, 3, 4, 5})
2. 변수와 기억 클래스
-
변수(Variable)
- 컴퓨터가 명령을 처리하는 도중 발생하는 값을 저장하기 위한 공간으로, 변할 수 있는 값을 의미
- 변수는 저장하는 값에 따라 정수형, 실수형, 문자형, 포인터형 등으로 구분
-
기억 클래스
- 변수 선언 시 메모리 내에 변수의 값을 저장하기 위한 기억영역이 할당되는데, 할당되는 기억영역에 따라 사용 범위에 제한이 있음. 이러한 기억영역을 결정하는 작업
-
C언어에서 제공하는 기억 클래스의 종류
- 자동 변수(Automatic Variable) : 함수나 코드의 범위를 한정하는 블록 내에서 선언되는 변수
- 외부 변수(External Variable) : 현재 파일이나 다른 파일에서 선언된 변수나 함수를 참조(reference)하기 위한 변수
- 정적 변수(Static Variable) : 함수나 블록 내에서 선언하는 내부 정적 변수와 함수 외부에서 선언하는 외부 정적 변수
- 레지스터 변수(Register Variable) : 메모리가 아닌 CPU 내부의 레지스터에 기억영역을 할당받는 변수
3. scanf 함수 / printf 함수
scanf 함수 : C언어의 표준 입력 함수로, 키보드로 입력받아 변수에 저장하는 함수
- 서식 문자열 : printf함수로 출력할 때도 동일하게 적용
- %d : 정수형 10진수
- %u : 부호없는 정수형 10진수
- %o : 정수형 8진수
- %x : 정수형 16진수
- %c : 문자를 입·출력
- %s : 문자열을 입·출력
- %f : 소수점을 포함하는 실수를 입·출력
- %e : 지수형 실수를 입·출력
- %ld : long형 10진수를 입·출력
- %lo : long형 8진수를 입·출력
- %lx : long형 16진수를 입·출력
- %p : 주소를 16진수로 입·출력
printf 함수 : C언어의 표준 출력 함수로, 인수로 주어진 값을 화면에 출력하는 함수
printf(" %-5.2f ", 200.2);
- \n : 커서를 다음 줄 앞으로 이동
- ’ : 작은따옴표를 출력
- \b : 커서를 왼쪽으로 한 칸 이동
- ” : 큰따옴표를 출력
- \t : 커서를 일정 간격 띄움
- \a : 스피커로 벨 소리를 출력
- \r : 커서를 현재 줄의 처음으로 이동
- \ : 역 슬래시를 출력
- \0 : 널 문자를 출력
- \f : 한 페이지를 넘김
4. Java에서의 표준 입·출력
- Java에서의 표준 입력 : Java에서 키보드로 입력받은 값을 변수에 저장하려면 먼저 Scanner 클래스를 이용해 키보드로부터 값을 입력받는 객체 변수를 생성한 후 사용
-
객체 변수 생성
- Scanner : 입력에 사용할 객체 변수를 생성할 때 사용하는 클래스 이름
- sc : 객체 변수명
- new : 객체 생성 예약어
- Scanner( ) : 클래스의 이름
- System.in : 표준 입력장치(키보드)를 의미
-
객체 변수 활용
- scin.nextInt( )
- scin : 입력에 사용할 객체 변수 이름이다. 객체 변수 생성 시 사용한 객체 변수 이름과 동일해야 함
- nextInt( ) : 입력받은 값을 정수형으로 반환
-
Java에서의 표준 출력
- Java에서 값을 화면에 출력할 때 : printf( ) 메소드를 이용
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
if (a>b) System.out.println(">");
else if(b>a) System.out.println("<");
else System.out.println("==");
}
}
5. 연산자
| 연산자 |
의미 |
| + |
덧셈 |
| - |
뺄셈 |
| * |
곱셈 |
| / |
나눗셈 |
| % |
나머지 |
| ++ |
증가 연산자 |
| - - |
감소 연산자 |
| 연산자 |
의미 |
| == |
같다 |
| != |
같지 않다 |
| > |
크다 |
| >= |
크거나 같다 |
| < |
작다 |
| <= |
작거나 같다 |
| 연산자 |
의미 |
비고 |
| ! |
not |
부정 |
| && |
and |
모두 참이면 참 |
| || |
or |
하나라도 참이면 참 |
| 연산자 |
의미 |
비고 |
연산자 |
의미 |
비고 |
| & |
and |
모든 비트가 1일 때만 1 |
~ |
not |
각 비트의 부정, 0이면 1, 1이면 0 |
| ^ |
xor |
모든 비트가 같으면 0, 하나라도 다르면 1 |
<< |
왼쪽 시프트 |
비트를 왼쪽으로 이동 |
| | |
or |
모든 비트 중 한 비트라도 1이면 1 |
>> |
오른쪽 시프트 |
비트를 오른쪽으로 이동 |
| 연산자 |
예 |
의미 |
| += |
a += 1 |
a = a + 1 |
| -= |
a -= 1 |
a = a - 1 |
| * = |
a * = 1 |
a = a * 1 |
| /= |
a /= 1 |
a = a / 1 |
| %= |
a %= 1 |
a = a % 1 |
| <<= |
a <<= 1 |
a = a << 1 |
| >>= |
a >>= 1 |
a = a >> 1 |
- 조건 연산자 형 :
조건 ? 1 : 2 : 참이면 1, 거짓이면 2 반환
- 기타 연산자
| 연산자 |
의미 |
| sizeof |
자료형의 크기를 표시한다. |
| ,(콤마) |
콤마로 구분하여 한 줄에 두 개 이상의 수식을 작성하거나 변수를 정의한다. 왼쪽에서 른쪽으로 순서대로 수행되며, 순서 연산자라 부르기도 한다. |
| (자료형) |
사용자가 자료형을 다른 자료형으로 변환할 때 사용하는 것으로, cast(캐스트) 연산자라고 부른다. 변환할 자료형을 괄호 안에 넣어서 변환할 값이나 변수명 앞에 놓는다. |
- 증가/감소 연산자는 변수의 앞(전치) 또는 변수의 뒤(후치)에 붙여 사용한다.
- 전치 : 변수 앞에 증감 연산자가 오는 형태로 먼저 변수의 값을 증감시킨 후 변수를 연산에 사용한다(++a, —a).
- 후치 : 변수 뒤에 증감 연산자가 오는 형태로 먼저 변수를 연산에 사용한 후 변수의 값을 증감시킨다(a++, a—).
- 연산자 우선순위 : 단항, 산술, 시프트, 관계, 비트, 논리, 조건, 대입, 순서
6. if문
#include <stdio.h>
int main(){
int num1 = 10;
if (num1 == 10)
printf("10\n");
return 0;
}
- 조건이 참일 때 실행할 문장이 두 문장 이상인 경우
#include <stdio.h>
int main(){
int num1 = 10;
if (num1 == 10){
printf("두 문장\n");
printf("10\n");
}
return 0;
}
- 조건이 참일 때와 거짓일 때 실행할 문장/이 다를 때
#include <stdio.h>
int main(){
int num1 = 10;
if (num1 == 10){
printf("10\n");
}else{
printf("not 10\n");
}
return 0;
}
다중 if문 : 조건이 여러 개 일 때 사용하는 제어문
#include <stdio.h>
int main(){
int num1 = 10;
if (num1 >= 10){
if (num1 >= 20){
printf("20 이상\n");
}
}
return 0;
}
7. switch문
- 조건에 따라 분기할 곳이 여러 곳인 경우 간단하게 처리할 수 있는 제어문
- case문의 레이블에는 한 개의 상수만 지정할 수 있으며, int, char, enum형의 상수만 가능
- case문의 레이블에는 변수 지정 불가
- break문은 생략이 가능하지만 break문이 생략되면 수식과 레이블이 일치할 때 실행할 문장부터 break문 또는 switch 문이 종료될 때까지 모든 문장이 실행
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(){
int num1;
scanf("%d", &num1);
switch (num1){
case 1:
printf("1 \n");
break
case 2:
printf("2 \n");
break
default:
printf("default\n");
}
return 0;
}